#include<p18f4550.h>
#include<plib/delays.h>
int in=0;// variable de inicio de programa 
int co=0;// continuacion del primer ciclo
void main ()
{
TRISA=31;
TRISB=0;
ADCON1=15;

      while(1){
          in=0;
          if(in=0){
         Delay10KTCYx(250);
         Delay10KTCYx(250);
         Delay10KTCYx(250);    
         LATB=9;  
         Delay10KTCYx(250);
         Delay10KTCYx(250);
         Delay10KTCYx(250);         
              
              
              
              co=1;}
if(co=1){

      if(PORTAbits.RA3==1){//con objeto
     if(PORTAbits.RA0==0 && PORTAbits.RA1==1 && PORTAbits.RA2==0 ){//condicion de movimiento para adelante
        LATB=9;
    }
    else if(PORTAbits.RA0==1 && PORTAbits.RA1==1 && PORTAbits.RA2==0){//condicion de movimiento para la izquierda
        LATB=5;
    }
    else if(PORTAbits.RA0==0 && PORTAbits.RA1==1 && PORTAbits.RA2==1){//condicion de movimiento para la derecha
        LATB=10;
    }
    else if(PORTAbits.RA0==1 && PORTAbits.RA1==1 && PORTAbits.RA2==1){//condicion de movimiento detener y giro 180 grados

        LATB=5;
        Delay10KTCYx(250);
         Delay10KTCYx(250);
          Delay10KTCYx(250);
        LATB=9;
         Delay10KTCYx(250);
           Delay10KTCYx(250);
           LATB=16;
           Delay100TCYx(10);
            LATB=0;
           Delay10KTCYx(100);
           LATB=16;
           Delay100TCYx(15);
            LATB=0;
           Delay10KTCYx(100);
    }
    } else if(PORTAbits.RA3==0){// sin objeto
    if(PORTAbits.RA0==0 && PORTAbits.RA1==1 && PORTAbits.RA2==0 ){//condicion de movimiento para adelante
        LATB=9;
    }
    else if(PORTAbits.RA0==1 && PORTAbits.RA1==1 && PORTAbits.RA2==0){//condicion de movimiento para la izquierda
        LATB=5;
    }
    else if(PORTAbits.RA0==0 && PORTAbits.RA1==1 && PORTAbits.RA2==1){//condicion de movimiento para la derecha
        LATB=10;
    }
    else if(PORTAbits.RA0==1 && PORTAbits.RA1==1 && PORTAbits.RA2==1){//condicion de movimiento detener y giro 180 grados
        LATB=5;
        Delay10KTCYx(250);
         Delay10KTCYx(250);
          Delay10KTCYx(250);
        LATB=9;
         Delay10KTCYx(250);
           Delay10KTCYx(250);

    }


    }
     }
     }
      }
